home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-12-07 | 6.4 KB | 213 lines |
- /*
- A basic extension of the java.awt.Frame class
- */
-
- import java.awt.*;
-
- public class CalculateFrame extends Frame {
- public boolean action(Event event, Object arg) {
- if (event.target instanceof MenuItem) {
- String label = (String) arg;
- if (label.equalsIgnoreCase("&Divide")) {
- DivideButton_Clicked(event);
- return true;
- } else
- if (label.equalsIgnoreCase("&Multiply")) {
- MultiplyButton_Clicked(event);
- return true;
- } else
- if (label.equalsIgnoreCase("&Subtract")) {
- SubtractButton_Clicked(event);
- return true;
- } else
- if (label.equalsIgnoreCase("&Add")) {
- AddButton_Clicked(event);
- return true;
- }
- }
- return super.action(event, arg);
- }
-
- void DivideButton_Clicked(Event event) {
- // to do: place event handler code here.
- double quotient, num1, num2;
-
- try {
- num1 = (Double.valueOf(textField1.getText())).doubleValue();
- num2 = (Double.valueOf(textField2.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- if (num2 == 0) return;
-
- quotient = num1 / num2;
-
- if (quotient < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.lightGray); }
-
- AnswerField.setText(String.valueOf(quotient));
- }
-
- void MultiplyButton_Clicked(Event event) {
- // to do: place event handler code here.
- double product, num1, num2;
-
- try {
- num1 = (Double.valueOf(textField1.getText())).doubleValue();
- num2 = (Double.valueOf(textField2.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- product = num1 * num2;
-
- if (product < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.lightGray); }
-
- AnswerField.setText(String.valueOf(product));
- }
-
- void SubtractButton_Clicked(Event event) {
- // to do: place event handler code here.
- double diff, num1, num2;
-
- try {
- num1 = (Double.valueOf(textField1.getText())).doubleValue();
- num2 = (Double.valueOf(textField2.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- diff = num1 - num2;
-
- if (diff < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.lightGray); }
-
- AnswerField.setText(String.valueOf(diff));
- }
-
- void AddButton_Clicked(Event event) {
- // to do: place event handler code here.
- double sum, num1, num2;
-
- try {
- num1 = (Double.valueOf(textField1.getText())).doubleValue();
- num2 = (Double.valueOf(textField2.getText())).doubleValue();
- } catch (NumberFormatException e) { return; }
-
- sum = num1 + num2;
-
- if (sum < 0) { AnswerField.setBackground(Color.red); }
- else { AnswerField.setBackground(Color.lightGray); }
-
- AnswerField.setText(String.valueOf(sum));
- }
-
-
- public CalculateFrame() {
-
- //{{INIT_CONTROLS
- setLayout(null);
- addNotify();
- resize(insets().left + insets().right + 299,insets().top + insets().bottom + 261);
- keyPressManagerPanel1 = new symantec.itools.awt.KeyPressManagerPanel();
- keyPressManagerPanel1.setLayout(null);
- keyPressManagerPanel1.reshape(insets().left + 0,insets().top + 0,299,261);
- add(keyPressManagerPanel1);
- keyPressManagerPanel1.setAutoTabState(true);
- textField1 = new java.awt.TextField(8);
- textField1.reshape(114,60,72,18);
- keyPressManagerPanel1.add(textField1);
- textField2 = new java.awt.TextField(8);
- textField2.reshape(114,96,72,18);
- keyPressManagerPanel1.add(textField2);
- AnswerField = new java.awt.TextField(8);
- AnswerField.setEditable(false);
- AnswerField.disable();
- AnswerField.reshape(114,138,72,18);
- AnswerField.setBackground(Color.lightGray);
- keyPressManagerPanel1.add(AnswerField);
- AddButton = new java.awt.Button("+");
- AddButton.reshape(216,60,24,18);
- keyPressManagerPanel1.add(AddButton);
- SubtractButton = new java.awt.Button("-");
- SubtractButton.reshape(216,86,24,18);
- keyPressManagerPanel1.add(SubtractButton);
- MultiplyButton = new java.awt.Button("x");
- MultiplyButton.reshape(216,112,24,18);
- keyPressManagerPanel1.add(MultiplyButton);
- DivideButton = new java.awt.Button("/");
- DivideButton.reshape(216,138,24,18);
- keyPressManagerPanel1.add(DivideButton);
- label1 = new java.awt.Label("Number 1 =");
- label1.reshape(12,65,84,13);
- keyPressManagerPanel1.add(label1);
- label2 = new java.awt.Label("Number 2 =");
- label2.reshape(12,98,84,13);
- keyPressManagerPanel1.add(label2);
- label3 = new java.awt.Label("Answer =");
- label3.reshape(12,142,84,13);
- keyPressManagerPanel1.add(label3);
- setTitle("Simple Calculation");
- setResizable(false);
- //}}
-
- textField1.requestFocus();
-
- //{{INIT_MENUS
- menuBar1 = new java.awt.MenuBar();
- menu1 = new java.awt.Menu("&Calculate");
- menu1.add("&Add");
- menu1.add("&Subtract");
- menu1.add("&Multiply");
- menu1.add("&Divide");
- menuBar1.add(menu1);
- setMenuBar(menuBar1);
- //}}
- }
-
- public CalculateFrame(String title) {
- this();
- setTitle(title);
- }
-
- public synchronized void show() {
- move(50, 50);
- super.show();
- }
-
- public boolean handleEvent(Event event) {
- if (event.id == Event.WINDOW_DESTROY) {
- hide(); // hide the Frame
- return true;
- }
- if (event.target == AddButton && event.id == Event.ACTION_EVENT) {
- AddButton_Clicked(event);
- }
- if (event.target == SubtractButton && event.id == Event.ACTION_EVENT) {
- SubtractButton_Clicked(event);
- }
- if (event.target == MultiplyButton && event.id == Event.ACTION_EVENT) {
- MultiplyButton_Clicked(event);
- }
- if (event.target == DivideButton && event.id == Event.ACTION_EVENT) {
- DivideButton_Clicked(event);
- }
- return super.handleEvent(event);
- }
-
- //{{DECLARE_CONTROLS
- symantec.itools.awt.KeyPressManagerPanel keyPressManagerPanel1;
- java.awt.TextField textField1;
- java.awt.TextField textField2;
- java.awt.TextField AnswerField;
- java.awt.Button AddButton;
- java.awt.Button SubtractButton;
- java.awt.Button MultiplyButton;
- java.awt.Button DivideButton;
- java.awt.Label label1;
- java.awt.Label label2;
- java.awt.Label label3;
- //}}
-
- //{{DECLARE_MENUS
- java.awt.MenuBar menuBar1;
- java.awt.Menu menu1;
- //}}
- }
-